package org.example.lanchain.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import nonapi.io.github.classgraph.json.Id;
import org.bson.types.ObjectId;
import org.springframework.data.mongodb.core.mapping.Document;

/**
 * 千问消息实体类
 * 
 * @Data 注解自动生成 getter、setter、toString 等方法
 * @AllArgsConstructor 注解生成包含所有字段的构造函数
 * @NoArgsConstructor 注解生成无参构造函数
 * @Document 注解指定该实体类对应的 MongoDB 集合名为 "chat_message"
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document("chat_message")
public class QwMessage {

    /**
     * MongoDB 文档的唯一标识符
     * 
     * @Id 注解标记这是文档的主键字段
     * ObjectId 是 MongoDB 的默认主键类型，是一个 12 字节的唯一标识符
     */
    @Id
    private ObjectId id;

    /**
     * 会话内存ID
     * 用于标识不同的对话会话
     */
    private Object memoryId;

    /**
     * 消息的唯一标识符
     * 用于在业务层面标识不同的消息
     */
    private int messageId;

    /**
     * 消息内容
     * 以 JSON 格式存储的消息内容列表
     * 可能包含多条消息记录
     */
    private String content;

}
